<% this.title = '题库' %>
<% include header %>
<%
let tagIDs = [];
if (typeof tags !== 'undefined') tagIDs = tags.map(x => x.id);
%>
<div class="padding">
  <div class="ui grid" style="margin-bottom: 10px; ">
    <div class="row" style="white-space: nowrap; ">
      <div class="seven wide column">
        <% if (typeof tags !== 'undefined') { %>
          <%
          tags.sort((a, b) => {
            return a.color > b.color ? 1 : -1;
          });
          %>
          <% for (let tag of tags) { %>
              <% let tagListRemovedThisTag = tagIDs.filter(x => x != tag.id).sort().join(','); %>
              <% let url = tagListRemovedThisTag ? syzoj.utils.makeUrl(['problems', 'tag', tagListRemovedThisTag]) : syzoj.utils.makeUrl(['problems']); %>
              <a href="<%= url %>" class="ui tiny <%= tag.color %> label">
                <%= tag.name %>
              </a>
          <% } %>
        <% } else { %>
          <form action="<%= syzoj.utils.makeUrl(['problems', 'search']) %>" method="get">
            <div class="ui search" style="width: 280px; height: 28px; margin-top: -5.3px; ">
              <div class="ui left icon input" style="width: 100%; ">
                <input class="prompt" style="width: 100%; " type="text" value="<%= req.query.keyword %>" placeholder="ID / 题目名 …" name="keyword">
                <i class="search icon"></i>
              </div>
              <div class="results" style="width: 100%; "></div>
            </div>
          </form>
        <% } %>
      </div>
      <div class="nine wide right aligned column">
        <div class="ui toggle checkbox" id="show_tag">
          <style id="show_tag_style"></style>
          <script>
          if (localStorage.getItem('show_tag') === '1') {
            document.write('<input type="checkbox" checked>');
            document.getElementById('show_tag_style').innerHTML = '.show_tag_controled { white-space: nowrap; overflow: hidden; }';
          } else {
            document.write('<input type="checkbox">');
            document.getElementById('show_tag_style').innerHTML = '.show_tag_controled { width: 0; white-space: nowrap; overflow: hidden; }';
          }
          </script>

          <script>
          $(function () {
            $('#show_tag').checkbox('setting', 'onChange', function () {
              let checked = $('#show_tag').checkbox('is checked');
              localStorage.setItem('show_tag', checked ? '1' : '0');
              if (checked) {
                document.getElementById('show_tag_style').innerHTML = '.show_tag_controled { white-space: nowrap; overflow: hidden; }';
              } else {
                document.getElementById('show_tag_style').innerHTML = '.show_tag_controled { width: 0; white-space: nowrap; overflow: hidden; }';
              }
            });
          });
          </script>
          <label>显示分类标签</label>
        </div>
        <div style="margin-left: 10px; display: inline-block; ">
          <% if (allowedManageTag) { %>
            <% if (typeof tags !== 'undefined' && tags.length === 1) { %>
              <a style="margin-left: 10px; " href="<%= syzoj.utils.makeUrl(['problems', 'tag', tags[0].id, 'edit']) %>" class="ui labeled icon mini blue button"><i class="write icon"></i> 编辑标签</a>
            <% } %>
            <a style="margin-left: 10px; " href="<%= syzoj.utils.makeUrl(['problems', 'tag', 0, 'edit']) %>" class="ui labeled icon mini green button"><i class="plus icon"></i> 添加标签</a>
          <% } %>
          <div style="margin-left: 10px; " class="ui mini buttons">
            <div class="ui labeled icon mini dropdown button" id="add_problem_dropdown"><i class="plus icon"></i> 添加题目
            <div class="menu">
              <a class="item" href="<%= syzoj.utils.makeUrl(['problem', 0, 'edit']) %>"><i class="file icon"></i> 新建题目</a>
              <a class="item" href="<%= syzoj.utils.makeUrl(['problem', 0, 'import']) %>"><i class="cloud download icon"></i> 导入题目</a>
            </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>

  <% if (problems.length) { %>
  <div style="margin-bottom: 30px; ">
    <% include page %>
  </div>
  <table class="ui very basic center aligned table">
    <thead>
      <tr>
        <% if (user) { %>
        <th class="one wide">提交状态</th>
        <% } %>
        <th class="one wide"><%- createSortableTitle('id', '编号', true) %></th>
        <th class="left aligned"><%- createSortableTitle('title', '题目名称', true) %></th>
        <th class="one wide"><%- createSortableTitle('ac_num', '通过', false) %></th>
        <th class="one wide"><%- createSortableTitle('submit_num', '提交', false) %></th>
        <th class="one wide">通过率</th>
      </tr>
    </thead>
    <tbody>
    <% for (let problem of problems) { %>
        <% if (problem.is_public || problem.allowedEdit) { %>
        <tr style="height: 44px; ">
            <% if (user) { %>
                <td>
                <% if (problem.judge_state) { %>
                  <a href="<%= syzoj.utils.makeUrl(['submission', problem.judge_state.id]) %>">
                    <span class="status <%= problem.judge_state.status.toLowerCase().split(' ').join('_') %>">
                      <i class="<%= icon[problem.judge_state.status] || 'remove' %> icon"></i>
                    </span>
                  </a>
                <% } %>
                </td>
            <% } %>
            <td><b><%= problem.id %></b></td>
            <td class="left aligned">
              <a style="vertical-align: middle; " href="<%= syzoj.utils.makeUrl(['problem', problem.id]) %>"><%= problem.title %>
                <% if (!problem.is_public) { %><span class="ui header"><span class="ui tiny red label">未公开</span></span><% } %>
              </a>
              <div class="show_tag_controled" style="float: right; ">
                <%
                if (problem.tags) {
                  for (let tag of problem.tags) {
                    let tagListToggledThisTag;
                    if (!tagIDs.includes(tag.id)) tagListToggledThisTag = tagIDs.concat([tag.id]);
                    else tagListToggledThisTag = tagIDs.filter(x => x != tag.id);
                    tagListToggledThisTag = tagListToggledThisTag.sort().join(',');

                    let url = tagListToggledThisTag ? syzoj.utils.makeUrl(['problems', 'tag', tagListToggledThisTag]) : syzoj.utils.makeUrl(['problems']);
                  %>
                  <span class="ui header">
                    <a href="<%= url %>" class="ui tiny <%= tag.color %> label">
                      <%= tag.name %>
                    </a>
                  </span>
                  <%
                  }
                }
                %>
              </div>
            </td>
            <td><%= problem.ac_num %></td>
            <td><%= problem.submit_num %></td>
            <td><%= problem.submit_num != 0 ? (((problem.ac_num / problem.submit_num * 100) || 0).toFixed(2) + '%') : '-' %></td>
        </tr>
        <% } %>
    <% } %>
    </tbody>
  </table><br>
  <% include page  %>
  <% } else { %>
  <div class="ui placeholder segment">
    <div class="ui icon header">
      <% if (typeof req.query.keyword !== 'undefined') { %>
      <i class="search icon" style="margin-bottom: 20px; "></i>
      找不到符合条件的题目
      <% } else { %>
      <i class="list icon" style="margin-bottom: 20px; "></i>
      暂无题目
      <% } %>
    </div>
  </div>
  <% } %>
<script>
document.addEventListener('keydown', function (event) {
  if (event.keyCode === 39) document.getElementById('page_next').click();
  else if (event.keyCode === 37) document.getElementById('page_prev').click();
});

$(function () {
  $('#add_problem_dropdown').dropdown();
});
</script>
<script>
$(function () {
  $('.ui.search').search({
    debug: true,
    apiSettings: {
      url: '/api/v2/search/problems/{query}',
      cache: false
    },
    fields: {
      title: 'name'
    }
  });
});
</script>
</div>
<% include footer %>
